/**
 * reg.html
 * controllers
 * 1.手机号码重新输入（获取焦点），去除所有错误控制信息 密码 验证码
 * 2.手机号码判定是否合法（移除焦点），如果合法，则可以获取验证码/否则显示错误信息。
 * 3.三个框都有值的情况，注册按钮显示正常
 * 4.发送验证码之后，显示倒计时60秒。
 * 5.登录按钮跳转事件
 * 6.注册按钮跳转事件
 */

var rootPath = getRootPath();
var isRightPhoneNum = false;//是否是正确的手机号
var isNormalPwd = false;//是否是正常长度的密码
var reg_flag;

$(function() {
	sensors.track('Adreambox_Login', {
		entrance : getEntranceByUrlAndUrlParam(parent.location.href,"service"),
		page_type : '注册页'
	});
	//解决苹果手机登录、注册、绑定微信页面的触发input输入框焦点  页面放大问题
	banTouches();
	var bodyHeight = document.documentElement.clientHeight;
	$('.body').css("height",bodyHeight+"px");
	$(document).scroll(function() { // 页面加载时，获取滚动条初始高度
		var distance = document.body.scrollHeight; // 获取滚动条初始高度的值 ：0
		console.log(distance); // 打印滚动条不同高度的位置的值
		$(".body").height(distance);

	})
	/*window.onresize = function() {
		setTimeout(function() { // 使用 setTimeout（）方法设定定时2000毫秒
			window.location.reload();// 页面刷新
		}, 500);
	} */
	//1.手机号码重新输入（获取焦点），去除所有错误控制信息
	$("#userphone_input").focus(function(){
		hideMsg();
		isRightPhoneNum = false;
	});
	
	$("#password_input").focus(function(){
		hidePwdMsg();
	});
	
	//2.手机号码,图片验证码判定是否合法（移除焦点），如果合法，则可以获取验证码/否则显示错误信息。
	$("#userphone_input,#checkcode_text_phone").blur(function(){
		if(!isPhoneAvailable($("#userphone_input").val())){
			showErrMsg("请填写有效的11位手机号码");
			$("#checkcode_get_code").css({"color":"#bbbbbb","cursor":"default"});
			return;
		}
		
		if($("#checkcode_text_phone").val() == '' || $.trim($("#checkcode_text_phone").val()).length < 4){
			$("#checkcode_get_code").css({"color":"#bbbbbb","cursor":"default"});
			return;
		}

		$.ajax({
			type: "get",
	        url: rootPath + "/userFront/checkPhone",
	        async : true,
	        dataType: "json",
	        data: {
	        	"phone": $("#userphone_input").val()
	        },
	        success: function (data){
	        	if("0000" == data.returnCode && "true" == data.returnObject) {
	        		isRightPhoneNum = false;
	        	} else {
	        		isRightPhoneNum = true;
	        	}
	        	
	            if(isRightPhoneNum) {
	            	hideMsg();
	            	$("#checkcode_get_code").css({"color":"#B4282D","cursor":"pointer"});
	            } else {
	            	showErrMsg("该手机号已注册");
	            	$("#checkcode_get_code").css({"color":"#bbbbbb","cursor":"pointer"});
	            }
	        }
		});
	});
	
	$("#password_input").blur(function() {
		var pwd = $.trim($(this).val());
		if(pwd.length < 6 || pwd.length > 16) {
			showErrPwdMsg("密码长度无效,应为6-16位");
			isNormalPwd = false;
		} else {
			hidePwdMsg();
			isNormalPwd = true;
		}
	});
	
	//3.三个框都有值的情况，注册按钮显示正常
	$("#userphone_input,#password_input,#checkcode_text_phone,#checkcode_text").bind('input propertychange',  function(){
		if($("#userphone_input").val() == '' 
			|| $("#password_input").val() == '' 
				|| $("#checkcode_text").val() == ''
					|| $.trim($("#password_input").val()).length < 6
					|| $.trim($("#password_input").val()).length > 16
					|| $("#checkcode_text_phone").val() == ''
					|| $.trim($("#checkcode_text_phone").val()).length < 4
					|| $.trim($("#checkcode_text").val()).length < 4
					|| !isRightPhoneNum
					|| !isNormalPwd) {
			$("#user_reg_click").css({"background":"#bbbbbb","cursor":"default"});
			reg_flag = false;
		} else {
			$("#user_reg_click").css({"background":"#B4282D","cursor":"pointer"});
			reg_flag = true;
		}
	});
	
	//4.发送验证码之后，显示倒计时60秒。
	$("#checkcode_get_code").click(getCheckCode);
	
	//5.登录按钮
	$("#login_btn").click(goLogin);
	
	//6. 注册按钮
	$("#user_reg_click").click(register);  
	
	$("#code_img_phone,#next_phone").click(refreshCheckCodePhone);
	refreshCheckCodePhone();
});


/**
 * 注册接口 /userFront/reg
 */
function register() {
	if(!reg_flag) return;
	
	var jsondata = {phone:$("#userphone_input").val(),
			password:$("#password_input").val(),
			code:$("#checkcode_text").val(),
			
	}
	
	//注册时，获取url参数service的值，传到后端
	var refererUrl = getUrlHostname();
	
	$.ajax({
			type: "post",
	        url: rootPath + "/userFront/reg/"+refererUrl,
	        //dataType: "json",
	        async : false,
	        contentType: 'application/json;charset=UTF-8',
	        data: JSON.stringify(jsondata),
	        success: function (data) {
	        	if("0000" == data.returnCode) {
	        		var u = $("#userphone_input").val();
	        		var p = $("#password_input").val();
	        		var s = getParentUrlParam("service");
	        		$.ajax({
	        			type: "POST",
	        	        url: rootPath + "/userFront/loginbymsg",
	        	        data: JSON.stringify({
	        	        	"login" : u,
	        	        	"checkCode" : $("#checkcode_text").val()
	        	        }),
	        	        contentType: "application/json;charset=UTF-8",
	        	        success: function (data){
	        	            if("0000" == data.returnCode){
	        	            	var curUrl = parent.location.href
	        	        		.replace(/(^|\\?|&)msg=([^&]*)/, "")
	        	        		.replace(/(^|\\?|&)username=([^&]*)/, "");
	        	            	if(curUrl.indexOf("?")>-1){
	        	            		curUrl += "&un="+u;
	        	            	}else{
	        	            		curUrl += "?un="+u;
	        	            	}
	        	            	var url = casLoginApi + "?un=" + u + "&pd=" + $("#checkcode_text").val();// + "&fail=" + encodeURIComponent(curUrl);
	        	            	url += !$.isEmptyObject(s)?("&service="+s):"";
	        	            	parent.location.href=url;
	        	            }else{
	        	            	showErrMsg(data.returnMessage);
	        	            }
	        	        }
	        		});
	        	} else {
	        		showErrMsg(data.returnMessage);
		        }
	        },
	        error:function (jqXHR, textStatus, errorThrown) {      
	        	showErrMsg("注册失败，请检查您的网络。");
	        }
	});

	
	
}

//刷新验证码
function refreshCheckCodePhone() {
	$("#code_img_phone").attr("src", '/account/captcha.jpg?tm=' + Math.random());
}

//获得验证码接口 
function getCheckCode() {
	if(!isRightPhoneNum){
		return;
	}
	if($.isEmptyObject($("#userphone_input").val())){
		showErrMsg("请输入手机号。");
		return;
	}	
	if($.isEmptyObject($("#password_input").val())){
		showErrMsg("请输入密码。");
		return;
	}
	if($.isEmptyObject($("#checkcode_text_phone").val())
			|| $.trim($("#checkcode_text_phone").val()).length < 4){
		showErrMsg("请输入正确的图片验证码。");
		return;
	}
	//倒计时中不能发送
	var countdown = $("#checkcode_get_code").attr("countdown");
	if(!$.isEmptyObject(countdown) && countdown>0){
		return;
	}
	//神策数据 埋点
	sensors.track('Adreambox_SmsGet', {
		current_business : '注册',
		get_type : '手机'
	});
	showErrMsg("正在发送,请稍等");
	setTime($("#checkcode_get_code"));
	$.ajax({
		   	type: "get",
	        url: rootPath + "/userFront/sendCodeSmsValidate",
	        data: { 
	        	"phone" : $("#userphone_input").val(),
	        	"flag" : 2,
	        	"checkCode":$("#checkcode_text_phone").val(),
	        },
	        dataType: "json",
	        success: function (data)
	        {
	        	if("0000"== data.returnCode){
	        		showErrMsg("发送成功");
	        	}else{
	        		showErrMsg(data.returnMessage);
		        }
	        },
	        error:function (jqXHR, textStatus, errorThrown) {      
	        	showErrMsg("发送验证码失败，请检查您的网络。");
	        }
	});
}

//验证码倒计时
function setTime(obj) {
	var countdown = obj.attr("countdown");
	if($.isEmptyObject(countdown) || countdown == 0) {
		countdown = 60;
	}
	var interval = setInterval(function() {
		countdown--;
		obj.attr("countdown",countdown);
		if(countdown == 0){
			obj.css({"color":"#B4282D","cursor":"pointer"});
	        obj.attr('disabled',false); 
	        obj.text("获取验证码");
			window.clearInterval(interval);
		} else {
			obj.css({"color":"#bbbbbb","cursor":"default"});
	        obj.attr('disabled',true);
	        obj.text("重新发送(" + countdown + ")");
		}
	}, 1000);
}


// 去登录页面
function goLogin() {
//	var parentUrl = parent.location.href;
//	parent.location.href = parentUrl.indexOf("msg") != -1 ? parentUrl.substring(0,parentUrl.indexOf("msg") - 1) : parentUrl;
	var url = "login.html?nomsg=1";
	document.location.href=url;
}

/**
 * 显示错误框
 * @param msg
 * @returns
 */
function showErrMsg(msg){
	if(!$.isEmptyObject(msg)){
		$("#user_msg").text(msg);
//		$("#user_layer .msg").show();
		$("#userphone .msg").show();
	}
}

/**
 * 隐藏错误框
 * @returns
 */
function hideMsg() {
	$("#user_msg").text("");
//	$("#user_layer .msg").hide();
	$("#userphone .msg").hide();
}

/**
 * 显示错误框
 * @param msg
 * @returns
 */
function showErrPwdMsg(msg){
	if(!$.isEmptyObject(msg)){
		$("#pwd_msg").text(msg);
		$("#password .msg").show();
	}
}

/**
 * 隐藏错误框
 * @returns
 */
function hidePwdMsg() {
	$("#pwd_msg").text("");
	$("#password .msg").hide();
}

/**
获取url中指定参数的值
 */
function getQueryVariable(variable){
	var query = window.location.search.substring(1);
	var vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if(pair[0] == variable){return pair[1];}
	}
	return(false);
}

/**
获取Url中hostname值
 */
function getUrlHostname(){
	var url =getQueryVariable("service");
	if(url){
		var url = decodeURIComponent(url);
		var urlArr = url.split("/");
        if(urlArr.length > 3){
            return urlArr[2]+"/"+urlArr[3];
        }
		return urlArr[2];
	}
	return "account";
}
